home *** CD-ROM | disk | FTP | other *** search
/ CU Amiga Super CD-ROM 17 / CU Amiga Magazine's Super CD-ROM 17 (1997)(EMAP Images)(GB)[!][issue 1997-12].iso / CUCD / Programming / DiceSource / src / alib / csup / rexx_support / rxslib.i < prev    next >
Encoding:
Text File  |  1994-06-10  |  7.3 KB  |  210 lines

  1.          IFND     REXX_RXSLIB_I
  2. REXX_RXSLIB_I  SET   1
  3. **
  4. **    $Filename: rexx/rxslib.i $
  5. **    $Release: 2.0 revision 2$
  6. **    $Revision: 30.0 $
  7. **    $Date: 1994/06/10 18:10:50 $
  8. **
  9. **    Include file for the REXX Systems Library
  10. **
  11. **    (C) Copyright 1986,1987,1988,1989,1990 William S. Hawes.
  12. **        All Rights Reserved
  13. **
  14.  
  15.          IFND     REXX_STORAGE_I
  16.          INCLUDE  "rexx/storage.i"
  17.          ENDC
  18.  
  19.          ; Macro definitions
  20.  
  21. RXSLIBNAME MACRO
  22.          dc.b     'rexxsyslib.library',0
  23.          ENDM
  24.  
  25. RXSDIR   MACRO                         ; public port name
  26.          dc.b     'REXX',0
  27.          ENDM
  28.  
  29. RXSTNAME MACRO                         ; name for tasks
  30.          dc.b     'ARexx',0
  31.          ENDM
  32.  
  33.          ; Structure definition for the REXX systems library
  34.  
  35.          STRUCTURE RxsLib,LIB_SIZE     ; EXEC library node
  36.          UBYTE    rl_Flags             ; global flags
  37.          UBYTE    rl_Shadow            ; shadow flags
  38.          APTR     rl_SysBase           ; EXEC library base
  39.          APTR     rl_DOSBase           ; DOS library base
  40.          APTR     rl_IeeeDPBase        ; IEEE DP math library base
  41.          LONG     rl_SegList           ; library seglist
  42.          LONG     rl_NIL               ; NIL: stream
  43.          LONG     rl_Chunk             ; allocation quantum
  44.          LONG     rl_MaxNest           ; maximum expression nesting
  45.  
  46.          APTR     rl_NULL              ; static string: NULL
  47.          APTR     rl_FALSE             ; static string: FALSE
  48.          APTR     rl_TRUE              ; static string: TRUE
  49.          APTR     rl_REXX              ; static string: REXX
  50.          APTR     rl_COMMAND           ; static string: COMMAND
  51.          APTR     rl_STDIN             ; static string: STDIN
  52.          APTR     rl_STDOUT            ; static string: STDOUT
  53.          APTR     rl_STDERR            ; static string: STDERR
  54.          APTR     rl_Version           ; version string
  55.  
  56.          APTR     rl_TaskName          ; name string for tasks
  57.          LONG     rl_TaskPri           ; starting priority
  58.          LONG     rl_TaskSeg           ; startup seglist
  59.          LONG     rl_StackSize         ; stack size
  60.          APTR     rl_RexxDir           ; REXX directory
  61.          APTR     rl_CTABLE            ; character attribute table
  62.          APTR     rl_Notice            ; copyright notice
  63.  
  64.          STRUCT   rl_RexxPort,MP_SIZE  ; public port
  65.          UWORD    rl_ReadLock          ; lock count
  66.          APTR     rl_TraceFH           ; global trace console
  67.  
  68.          STRUCT   rl_TaskList,LH_SIZE  ; REXX task list
  69.          WORD     rl_NumTask
  70.          STRUCT   rl_LibList,LH_SIZE   ; Library List header
  71.          WORD     rl_NumLib
  72.          STRUCT   rl_ClipList,LH_SIZE  ; ClipList header
  73.          WORD     rl_NumClip
  74.          STRUCT   rl_MsgList,LH_SIZE   ; pending messages
  75.          WORD     rl_NumMsg
  76.          STRUCT   rl_PgmList,LH_SIZE   ; cached programs
  77.          WORD     rl_NumPgm            ; cache count
  78.  
  79.          UWORD    rl_TraceCnt          ; trace console usage count
  80.          WORD     rl_avail
  81.          LABEL    rl_SIZEOF
  82.  
  83. * Global flag bit definitions for RexxMaster
  84. RLFB_TRACE EQU    RTFB_TRACE           ; interactive tracing?
  85. RLFB_HALT  EQU    RTFB_HALT            ; halt execution?
  86. RLFB_SUSP  EQU    RTFB_SUSP            ; suspend execution?
  87. RLFB_STOP  EQU    6                    ; deny further invocations
  88. RLFB_CLOSE EQU    7                    ; close the master
  89.  
  90. * Mask for control flags
  91. RLFMASK  EQU      1<<RLFB_TRACE!1<<RLFB_HALT!1<<RLFB_SUSP
  92.  
  93.          ; Initialization constants
  94.  
  95. RXSCHUNK EQU      1024                 ; allocation quantum
  96. RXSNEST  EQU      32                   ; expression nesting limit
  97. RXSTPRI  EQU      0                    ; task priority
  98. RXSSTACK EQU      4096                 ; stack size
  99.  
  100.          ; The library entry point offsets
  101.  
  102.          LIBINIT
  103.          LIBDEF   _LVORexx             ; Main entry point
  104.          LIBDEF   _LVOrxParse          ; (private)
  105.          LIBDEF   _LVOrxInstruct       ; (private)
  106.          LIBDEF   _LVOrxSuspend        ; (private)
  107.          LIBDEF   _LVOEvalOp           ; (private)
  108.  
  109.          LIBDEF   _LVOAssignValue      ; (private)
  110.          LIBDEF   _LVOEnterSymbol      ; (private)
  111.          LIBDEF   _LVOFetchValue       ; (private)
  112.          LIBDEF   _LVOLookUpValue      ; (private)
  113.          LIBDEF   _LVOSetValue         ; (private)
  114.          LIBDEF   _LVOSymExpand        ; (private)
  115.  
  116.          LIBDEF   _LVOErrorMsg
  117.          LIBDEF   _LVOIsSymbol
  118.          LIBDEF   _LVOCurrentEnv
  119.          LIBDEF   _LVOGetSpace
  120.          LIBDEF   _LVOFreeSpace
  121.  
  122.          LIBDEF   _LVOCreateArgstring
  123.          LIBDEF   _LVODeleteArgstring
  124.          LIBDEF   _LVOLengthArgstring
  125.          LIBDEF   _LVOCreateRexxMsg
  126.          LIBDEF   _LVODeleteRexxMsg
  127.          LIBDEF   _LVOClearRexxMsg
  128.          LIBDEF   _LVOFillRexxMsg
  129.          LIBDEF   _LVOIsRexxMsg
  130.  
  131.          LIBDEF   _LVOAddRsrcNode
  132.          LIBDEF   _LVOFindRsrcNode
  133.          LIBDEF   _LVORemRsrcList
  134.          LIBDEF   _LVORemRsrcNode
  135.          LIBDEF   _LVOOpenPublicPort
  136.          LIBDEF   _LVOClosePublicPort
  137.          LIBDEF   _LVOListNames
  138.  
  139.          LIBDEF   _LVOClearMem
  140.          LIBDEF   _LVOInitList
  141.          LIBDEF   _LVOInitPort
  142.          LIBDEF   _LVOFreePort
  143.  
  144.          LIBDEF   _LVOCmpString
  145.          LIBDEF   _LVOStcToken
  146.          LIBDEF   _LVOStrcmpN
  147.          LIBDEF   _LVOStrcmpU
  148.          LIBDEF   _LVOStrcpyA          ; obsolete
  149.          LIBDEF   _LVOStrcpyN
  150.          LIBDEF   _LVOStrcpyU
  151.          LIBDEF   _LVOStrflipN
  152.          LIBDEF   _LVOStrlen
  153.          LIBDEF   _LVOToUpper
  154.  
  155.          LIBDEF   _LVOCVa2i
  156.          LIBDEF   _LVOCVi2a
  157.          LIBDEF   _LVOCVi2arg
  158.          LIBDEF   _LVOCVi2az
  159.          LIBDEF   _LVOCVc2x
  160.          LIBDEF   _LVOCVx2c
  161.  
  162.          LIBDEF   _LVOOpenF
  163.          LIBDEF   _LVOCloseF
  164.          LIBDEF   _LVOReadStr
  165.          LIBDEF   _LVOReadF
  166.          LIBDEF   _LVOWriteF
  167.          LIBDEF   _LVOSeekF
  168.          LIBDEF   _LVOQueueF
  169.          LIBDEF   _LVOStackF
  170.          LIBDEF   _LVOExistF
  171.  
  172.          LIBDEF   _LVODOSCommand
  173.          LIBDEF   _LVODOSRead
  174.          LIBDEF   _LVODOSWrite
  175.          LIBDEF   _LVOCreateDOSPkt     ; obsolete
  176.          LIBDEF   _LVODeleteDOSPkt     ; obsolete
  177.          LIBDEF   _LVOSendDOSPkt       ; (private)
  178.          LIBDEF   _LVOWaitDOSPkt       ; (private)
  179.          LIBDEF   _LVOFindDevice       ; (private)
  180.  
  181.          LIBDEF   _LVOAddClipNode
  182.          LIBDEF   _LVORemClipNode
  183.          LIBDEF   _LVOLockRexxBase
  184.          LIBDEF   _LVOUnlockRexxBase
  185.          LIBDEF   _LVOCreateCLI        ; (private)
  186.          LIBDEF   _LVODeleteCLI        ; (private)
  187.          LIBDEF   _LVOCVs2i
  188.  
  189. * Character attribute flag bits used in REXX.
  190. CTB_SPACE   EQU   0                    ; white space characters
  191. CTB_DIGIT   EQU   1                    ; decimal digits 0-9
  192. CTB_ALPHA   EQU   2                    ; alphabetic characters
  193. CTB_REXXSYM EQU   3                    ; REXX symbol characters
  194. CTB_REXXOPR EQU   4                    ; REXX operator characters
  195. CTB_REXXSPC EQU   5                    ; REXX special symbols
  196. CTB_UPPER   EQU   6                    ; UPPERCASE alphabetic
  197. CTB_LOWER   EQU   7                    ; lowercase alphabetic
  198.  
  199. * The flag form of the character attributes
  200. CTF_SPACE   EQU   1<<CTB_SPACE
  201. CTF_DIGIT   EQU   1<<CTB_DIGIT
  202. CTF_ALPHA   EQU   1<<CTB_ALPHA
  203. CTF_REXXSYM EQU   1<<CTB_REXXSYM
  204. CTF_REXXOPR EQU   1<<CTB_REXXOPR
  205. CTF_REXXSPC EQU   1<<CTB_REXXSPC
  206. CTF_UPPER   EQU   1<<CTB_UPPER
  207. CTF_LOWER   EQU   1<<CTB_LOWER
  208.  
  209.          ENDC
  210.